//Page Object
// 1.页面被打开时，onShow
//   流程：获取url上的参数type -- 根据type发送请求获取订单数据 -- 渲染页面
// 2.点击不同的标题，重新发送请求来获取和渲染数据

import {request} from '../../request/index'
Page({
    data: {
        tabs: [
            {
                id: 0,
                value: '全部',
                isActive: false
            },
           
            {
                id: 1,
                value: '待付款',
                isActive: false
            },
            {
                id: 2,
                value: '待收货',
                isActive: false
            },
            {
                id: 3,
                value: '退款/退货',
                isActive: false
            }
        ],
        orders: []
    },
    //options(Object)
    onLoad: function(options){
        
    },
    onReady: function(){
        
    },
    onShow: function(){
        // 页面栈：
        // 1.获取当前的小程序的页面栈（数组），最大长度为10个页面；
        // 2.数组中索引最大的页面是当前页面，在栈顶
        let pages = getCurrentPages();
        const {type} = pages[pages.length-1].options;
        this.changeTitleByIndex(type-1);
        this.getOrders(type);
    },
    onHide: function(){

    },
    onUnload: function(){

    },
    onPullDownRefresh: function(){

    },
    onReachBottom: function(){

    },
    onShareAppMessage: function(){

    },
    onPageScroll: function(){

    },
    //item(index,pagePath,text)
    onTabItemTap:function(item){

    },

    // 封装：根据标题索引激活选中的标题数组
    changeTitleByIndex(index) {
        let {tabs} = this.data;
        // 遍历arr,当点击对象为当前对象时，对应的isActive属性为true
        tabs.forEach((v,i) => i===index ? v.isActive=true : v.isActive=false);
        this.setData({
            tabs
        })
    },

    // 获取订单列表的方法
    async getOrders(type){
        try {
            // 判断缓存中是否有token,没有则跳转至授权页面，获取token；有则继续执行后面代码
            if(!wx.getStorageSync('token')){
                wx.navigateTo({url: '/pages/auth/auth'});
                return;
            };
            const {data:res} = await request({url:'/my/orders/all', data:{type}});
            const {orders} = res.message;
            this.setData({
                orders: orders.map( v => ({...v, create_time_cn:(new Date(v.create_time*1000).toLocaleString())}))
            })
        } catch (err) {
            console.log(err);
        }
    },

    // 事件绑定：标签点击事件
    handleTabsItemTap(e) {
        const {index} = e.detail;
        // 切换标签时，激活相应的标题数组
        this.changeTitleByIndex(index);
        // 切换标签时，还需重新发送请求，获取当前标签下对应的订单列表
        this.getOrders(index+1);
    },

    
});